package com.itzdm.ai.service;



import com.itzdm.ai.model.ChatContext;
import com.itzdm.ai.model.ChatMessage;

import java.util.List;

/**
 * 聊天上下文服务接口，负责管理用户的聊天上下文
 */
public interface ChatContextService {
    
    /**
     * 获取指定用户的聊天上下文
     * @param userId 用户ID
     * @return 聊天上下文
     */
    ChatContext getChatContext(Long userId);
    
    /**
     * 保存用户的聊天上下文
     * @param chatContext 聊天上下文
     */
    void saveChatContext(ChatContext chatContext);
    
    /**
     * 添加用户消息到上下文
     * @param userId 用户ID
     * @param content 消息内容
     * @return 更新后的聊天上下文
     */
    ChatContext addUserMessage(Long userId, String content);
    
    /**
     * 添加系统回复消息到上下文
     * @param userId 用户ID
     * @param content 消息内容
     * @return 更新后的聊天上下文
     */
    ChatContext addAssistantMessage(Long userId, String content);
    
    /**
     * 添加带推理内容的助手消息到上下文
     * @param userId 用户ID
     * @param content 消息内容
     * @param reasoningContent 推理内容
     * @return 更新后的聊天上下文
     */
    ChatContext addAssistantMessageWithReasoning(Long userId, String content, String reasoningContent);
    
    /**
     * 获取用户的消息历史
     * @param userId 用户ID
     * @return 消息历史列表
     */
    List<ChatMessage> getMessageHistory(Long userId);
    
    /**
     * 清除用户的聊天上下文
     * @param userId 用户ID
     */
    void clearChatContext(Long userId);
    
    /**
     * 设置系统消息
     * @param userId 用户ID
     * @param content 系统消息内容
     * @return 更新后的聊天上下文
     */
    ChatContext setSystemMessage(Long userId, String content);
} 